# 基于⽂件实现⽤户注册及登录功能
# 普通要求:
# 单⽤户模式 并且注册登录功能⽆需整合
# 进阶要求:
# 单⽤户模式 注册登录功能可循环执⾏
# 拔⾼要求:
# 多⽤户模式 注册登录功能可循环执⾏
current_user = None

user_info = {}


def read_data():
    try:
        with open('data_txt', 'r', encoding='utf-8') as f:
            data = f.readline()
            global user_info
            user_info = eval(data)
    except Exception:
        save_data()


def save_data():
    with open('data_txt', 'w', encoding='utf-8') as f:
        f.write(str(user_info))


def login():
    username = input('请输入用户名:').strip()
    password = input('请输入密码:').strip()
    if user_info.get(username):
        if user_info.get(username) == password:
            print('登录成功！')
            global current_user
            current_user = username
            return True

    print('用户名或密码错误！')
    return False


def register():
    username = input('请输入注册的用户名:').strip()
    if user_info.get(username):
        print('当前用户已存在！请重新输入')
        return register()
    password = input('请输入用户密码:').strip()

    user_info[username] = password
    save_data()
    print('注册成功！')


read_data()
while True:
    print('当前用户: %s '.center(30, '*') % current_user)
    print('1.注册功能'.center(30))
    print('2.登录功能'.center(30))
    order = input('请输入你要使用的功能(按q退出,输入logout退出):').strip()
    if order == '1':
        register()
    elif order == '2':
        login()
    elif order == 'q':
        print('退出程序！')
        exit(0)
    elif order == 'logout':
        current_user = None
        print('退出登录')
    else:
        print('输入指令无效，请重新输入！')
